package 力扣题库;

import java.util.ArrayList;
import java.util.List;


public class p144二叉树的前序遍历 {

    List<Integer> res=new ArrayList<>();
    //没有利用题目中函数的返回值

    public List<Integer> preorderTraversal1(TreeNode root) {
        if (root==null) {
            return res;
        }
        res.add(root.val);
        preorderTraversal1(root.left);
        preorderTraversal1(root.right);
        return res;
    }


    //利用子问题 根 左子树 右子树 思路解决问题
    public List<Integer> preorderTraversal(TreeNode root) {
        List<Integer> res=new ArrayList<>();
        if (root==null) {
            return res;
        }
        res.add(root.val);

        List<Integer> left=preorderTraversal(root.left);
        res.addAll(left);//addAll(表1)  将表1中的所有元素添加到res中

        List<Integer> right=preorderTraversal(root.right);
        res.addAll(right);

        return res;
    }
}
